import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

// --- 配置 ---
const INPUT_FILENAME = 'input.txt'; // 您的原始飞书 .txt 文件名
const OUTPUT_FILENAME = 'output.txt'; // 处理后, 用于上传 Dify 的文件名
// --- 配置结束 ---

const inputFilePath = path.join(__dirname, INPUT_FILENAME);
const outputFilePath = path.join(__dirname, OUTPUT_FILENAME);

console.log(`正在读取文件: ${inputFilePath}`);

fs.readFile(inputFilePath, 'utf8', (err, data) => {
    if (err) {
        console.error('读取文件时出错:', err);
        return;
    }

    console.log('文件读取成功，正在处理...');

    // 核心处理逻辑：
    // 使用正则表达式匹配所有以 "一个或多个数字" + "、" 开头的行
    // ^(\d+、) -> ^ 表示行首, \d+ 表示一个或多个数字, 、 表示顿号
    // 'm' 标志表示多行模式 (让 ^ 匹配每一行的开头)
    const regex = /^(\d+、)/gm;

    // 替换逻辑：
    // 在匹配到的内容($1, 即 "1、") 前面加上一个换行符 "\n"
    // 注意：我们只在第二节及之后的内容前加换行符，避免在文件开头加空行
    let processedData = data.replace(regex, (match, p1) => {
        // p1 是匹配到的 "1、", "2、" 等
        // 避免在文件最开头（如果文件以 "1、" 开始）添加多余的空行
        if (data.indexOf(match) === 0) {
            return p1; // 如果是文件开头，原样返回
        }
        return `\n${p1}`; // 在 "2、"、"3、" 等前面加上一个空行
    });
    
    // （可选）清理开头可能存在的连续空行（以防万一）
    processedData = processedData.trimStart();


    fs.writeFile(outputFilePath, processedData, 'utf8', (err) => {
        if (err) {
            console.error('写入文件时出错:', err);
            return;
        }
        console.log('----------------------------------');
        console.log(`🎉 处理完成!`);
        console.log(`结果已保存到: ${outputFilePath}`);
        console.log('请将这个 output.txt 文件上传到 Dify。');
        console.log('----------------------------------');
    });
});